package com.jinzhi.jzweb.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.jinzhi.common.utils.Result;
import com.jinzhi.jzapi.examination.pojo.ExaminationsVo;
import com.jinzhi.jzweb.domain.MarkDO;
import com.jinzhi.common.base.CoreService;
import com.jinzhi.jzweb.domain.MarkStatisticsVO;
import com.jinzhi.jzweb.domain.MarkVO;
import com.jinzhi.jzweb.domain.StuSignUpComDO;
import com.jinzhi.jzweb.pojo.MrkRefereeVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 
 * <pre>
 * 打分表
 * </pre>
 * <small> 2023-06-19 08:45:15 | lance</small>
 */
public interface MarkService extends CoreService<MarkDO> {

    Page<MarkDO> selectListPageMarkDO(int current, int number, Map map);

    Page<MarkDO> selectListPageMarkDOSecure(ExaminationsVo examinationsVo);



    Page<MarkStatisticsVO> selectListPageMarkStatisticsVO(int current, int number, Map map);

    List<MarkStatisticsVO> selectListMarkStatisticsVO(Map map);

    List<MarkDO> selectListMarkDO(Map map);

    List<MarkVO> selectListMarkVO(Map map);

    List<MrkRefereeVO> selectRefereeId(Map map);

    String selTotalScore(Map map);

    List<Double> selMaxMinScore(Map map);

    List<Double> selMaxMinScoreA(Map map);

    List<Double> selMaxMinScoreStudent(Map map);

    List<MarkVO> selEditData(Map map);

    List<MarkVO>  sleMarkByebatchIdAndSignId(Map map);

    List<String> selScoreABC(Map map);

    List<MarkVO> seleScoreTopicContent(Map map);

    List<MarkVO> selectAListScore(Map map);

    List<MarkVO> selectAListStatusScore(Map map);

    List<MarkVO> seleScoreTopicContentStandby(Map map);

    List<MarkVO> selectAScore(Map map);

    List<MrkRefereeVO> selectReferee(Map map);

    List<MarkVO> selectMark(Map map);

    List<MrkRefereeVO> selectRefereeSize(Map map);

    List<MarkVO> selectRefereeBCSize(Map map);

    Result stuFileDownload(Long cbatchId, HttpServletResponse response);


    MarkVO queryScoreStatistics(MarkDO markDO);

    /**
     * 录分保存
     * @param examinationsVo
     * @return
     */
    Result recordASave(List<MarkDO> markDOS);



}
